//  导入 vue
import Vue from 'vue'
//  导入 vuex 
import Vuex from 'vuex'
// 导入持久化存储插件
import creatPersistedState from 'vuex-persistedstate';
// 导入注册好的模块
import search from './search.js'
// 在 Vue中应用插件/注册插件
Vue.use(Vuex);

//  配置对象
const store = new Vuex.Store({
	// 状态：存储共享的数据
	state: {},
	// 创建同步函数,主要作用: 修改 state 内部的数据 【类似组件 methods】
	mutations: {},
	// 创建异步函数 主要作用:先被组件调用，然后在函数内部调用mutations的同步函数
	actions: {},

	// 设置数据 不改变原数据  return 返回另外一个形式【类似组件computed】
	getters: {},
	// 设置模块开发 指向按照功能将数据分别进行不同的模块
	// 跟注册登录相关的数据划分一个模块 购物车相关的数据一个模块，订单数据一个模块【数据量庞大且操作较多的功能区域】
	modules: {
		// 应用注册的搜索模块
		search
	},

	// 设置store 持久化存储 与本地缓存同步
	plugins: [creatPersistedState()]
})
// 导出
export default store;
